// 长度为三且各字符不同的子字符串
// 哈希表 + 滑动窗口

#include <string>
using namespace std;

class Solution {
public:
    int countGoodSubstrings(string s) 
    {
        int hash[26] = { 0 };
        int ret = 0;
        for(int left = 0, right = 0; right < s.size(); right++)
        {
            char tmp = s[right];
            hash[tmp - 'a']++;// 进窗口
            while(hash[tmp - 'a'] > 1)// 判断
            {
                hash[s[left++] - 'a']--;// 出窗口
            }
            if(right - left + 1 == 3)// 更新结果
            {
                ret++;
                hash[s[left++] - 'a']--;
            }
        }
        return ret;
    }
};